package com.udp;
/**UDP 通信实现
 * UDP协议与TCP协议不同，是面向无连接的，双方不需要建立连接便可通信。
 * UDP通信所发送的数据需要进行封包操作（DatagramPacket类），然后才
 * 能接收或发送（使用DatagramSocket类）
 * 传送效率快*/
/*如果是重要的东西用TCP  非重要的东西用UDP*/
/*可能存在的问题：丢包  乱序  错包  重复包*/

/*DatagramPacket:数据容器（封包）作用
* 此类表示数据报包，数据报包用来实现将发送的数据进行封包处理的
* 常用方法：
* DatagramPacket(byte[] buf,int length) : 构造数据报包（字节类型），
* 用来指定长度为length 的数据包
*  DatagramPacket(byte[] buf,int length,InetAddress address,int port) :
* 构造数据报包（字节类型） 用来指定长度为length 的数据包  发送到指定的IP 地址 和端口号
* getAddress():获取发送或接收方计算机的IP地址，此数据将要发送到该机器或者是
* 从该机器接收到的
* getData():获取发送或者接收的数据
* setData(byte[] buf):设置发送的数据*/
public class UDP00 {

/*DatagramSocket：用于发送或接收数据包
* 当客户端要向服务端发送数据时，需要在客户端产生一个DatagramSocket 对象，在服务
* 端产生一个DatagramSocket 对象，客户端的DatagramSocket将DatagramPacket
* 发送到网络上，然后被服务端的DatagramSocket接收
* 常用方法：
* DatagramSocket（int port): 创建数据报套接字并将其绑定到本地主机上的
* 指定端口
* send(DatagramPacket p): 从此套接字接收数据报包
* close(): 关闭数据报套接字*/

/*UDP通信编程基本步聚：
* 1，创建服务器端的DatagramSocket,创建时，定义服务器端的监听端口
* 2，创建客户端的DatagramSocket,创建时，定义客户端的监听端口
* 3,在服务端定义DatagramPacket 对象 ，封装待接收的数据包
* 4，客户端将数据报包发送出去
* 5，服务器端接收数据报包*/
}

